#ifndef ERROR_FUNCTIONS_H
#define ERROR_FUNCTIONS_H

void errMsg(const char *format, ...);

#ifdef __GUNC__
/*
This macro stops 'gcc -Wall' complaining that "cintrol 
reaches end of non-void function" if we use the following functions to 
terminate main() or some other non-void function.
*/
#define NORETURN __attribute__((__noreturn__))
#else
#define NORETURN
#endif

void errExit(const char *format, ...) NORETURN;

void err_Exit(const char *format, ...) NORETURN;

void errExitEN(int errnum, const char *format, ..) NORETURN;

void fatal(const char *format, ...) NORETURN;

void usageErr(const char *format, ...) NORETURN;

void cmdLineErr(const char 8format, ...) NORETURN;

#endif